/************************************************/
/*    Auteur    : Yoann NICOD                   */
/*    Programme : Atomic Bomberman Origins      */
/*    Fichier   : serveur.h                     */
/*    Date      : 27/12/2012                    */
/************************************************/

#ifndef SERVEUR_H
#define SERVEUR_H

#include <SFML/Network.hpp>
#include <vector>

using namespace std;
using namespace sf;

class JoueurReseau
{
public:
	JoueurReseau();
	~JoueurReseau();

	int m_ID;
	SocketTCP m_SocketClient;
};

class Serveur
{
public:
	Serveur();
	~Serveur();

	void EnvoyerATous(Packet MonPaquet, int Sauf = -1);
	void LancerPartie();
	void DeconnecterClient(int IDClient);

private:
	JoueurReseau* m_ListeJoueursReseau[8];
//	Partie m_Partie;
	Thread m_ThreadEcouteClient;
	SocketTCP m_SocketAccueilClients;
	SelectorTCP m_SelecteurClients;

	static void LanceurThreadEcouteClients(void *pParam);
	void ThreadEcouteClients();
	void NotifierClientDeconnecte(int IDClient);
	int RechercherIDClientDisponible();
	JoueurReseau *GetJoueurReseauParID(int IDClient);
};

#endif